//路由模块：
    // 处理路由
    //根据不同的请求方法和请求路径设置具体

var fs = require('fs')
var Student = require('./student')

//Express提供了一种方式专门用来包装路由
var express = require('express')

//1.创建一个路由容器
var router = express.Router()

//2.把路由都挂载到router路由容器中

router.get('/students', function (req, res) {
    //readFile 第二个参数 'utf8' 或者data.toString
    // fs.readFile('./db.json', 'utf8', function (err, data) {
    //     if (err) {
    //         return res.status(500).send('Server error')
    //     }
    //     //从文件中读取的数据是字符串
    //     //需要手动转换成对象
    //     var students = JSON.parse(data).students
    //     res.render('index.html',{
    //         fruits: [
    //             '苹果',
    //             '香蕉',
    //             '桔子',
    //             '蜜瓜',
    //         ],
    //         "students": students//转成对象在.出来
    // })
    // })

    Student.find(function (err, students) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.render('index.html',{
            fruits: [
                '苹果',
                '香蕉',
                '蜜瓜',
                '桔子'
            ],
            students: students
        })
    })
})

router.get('/students/new', function (req, res) {
    res.render('new.html', )
})

router.post('/students/new', function (req, res) {
    //1.获取表单post请求数据
    //2.处理,保存到db.json文件持久化
    //（读取转成对象，push数据，对象转成字符串，字符串写入文件）
    //3.发送响应
    //query只能get请求使用
   
    Student.save(req.body, function (err) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.redirect('/students')
    })  
    // res.redirect('/students')
})

router.get('/students/edit', function (req, res) {
    //1.客户端列表页处理链接问题，需要有id参数
    //2.获取要编辑学生的id
    //3.渲染编辑页面
        //  根据id把学生信息查出来
        //  使用模板引擎渲染页面
    
    Student.findById(parseInt(req.query.id), function (err, student) {
        if (err) {
            return res.status(500).send('Server error') 
        }
        res.render('edit.html', {
            student: student
        })
    })
})

router.post('/students/edit', function (req, res) {
    // 1 获取表单数据
    // 2 更新Student.update()
    // 3 发送响应
    Student.updateById(req.body, function (err) {
        if (err) {
            return res.status(500).send('Server error') 
        }
        res.redirect('/students')
    })
})




router.get('/students/delete', function (req, res) {
    // 1.获取删除id
    // 2.根据id执行删除操作
    // 3.根据操作结果发送相应数据
    Student.deleteById(req.query.id, function (err) {
        if (err) {
            return res.status(500).send('Server error') 
        }
        res.redirect('/students')
    })
})

// 3. 把 router 导出
module.exports = router





